/*-- 用户行为分析相关 --*/
import Vue from 'vue';

// console.log('getDeviceInfo:',uni.getDeviceInfo())

const analysis = {
	trigger: function(action,returnValue="/",route="/") {
		// 分析数据
		let analysisData = {
			route: route, //路径
			deviceId: uni.getDeviceInfo().deviceId, //设备信息（设备id，由 uni-app 框架生成并存储，清空 Storage 会导致改变）
			ip: '/', //前端获取不了
			user: '/', //用户
			action: action, //触发动作
			returnValue: returnValue, //动作返回值
			triggerTime: Vue.prototype.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM:ss'), //触发时间
			responseTime: '', //接口响应时间
			detentionTime: '' //当前路径滞留时间
		}
		// console.log('用户行为分析数据：',analysisData)
	}
}
Vue.prototype.analysis = analysis;

// 路由守卫
import UniRouteGuards from 'uniapp-route-guards';
Vue.use(UniRouteGuards);

const guard = new UniRouteGuards();

// // 自定义路由拦截白名单
// const WHILE_LIST = ['/pages/index/index'];

// // 跳过路由白名单拦截
// guard.beforeEach((to, from, next) => {
//     if (WHILE_LIST.includes(from.url)) {
//         return next(to.url);
//     }

//     next();
// });

// 全局前置守卫
guard.beforeEach((to, from, next) => {
    // console.log('\n');
    // console.log('=================');
    // console.log('guard.beforeEach');
    // console.log('to: ', to);
    // console.log('from: ', from);
    // console.log('=================');
    // console.log('\n');
	
	// 例子:
	// if (to.action === 'switchTab' && to.url === '/src/pages/c') {
	// 	return next({
	// 		url: '/src/pages/d',
	// 		action: 'navigateTo'
	// 	});
	// }
	Vue.prototype.analysis.trigger('进入页面','/',to.url)
    next();
});

//全局后置后卫
guard.afterEach((to, from) => {
    // console.log('\n');
    // console.log('=================');
    // console.log('guard.afterEach');
    // console.log('to: ', to);
    // console.log('from: ', from);
    // console.log('=================');
    // console.log('\n');
});

// 注册 路由守卫出现异常回调的钩子
guard.onError((errMsg) => {
    console.error('route-guards error: ' + errMsg);
});